# Словарь с расшифровкой азбуки Морзе
morse_code = {
    "0": "-----",
    "1": ".----",
    "2": "..---",
    "3": "...--",
    "4": "....-",
    "5": ".....",
    "6": "-....",
    "7": "--...",
    "8": "---..",
    "9": "----.",
    "a": ".-",
    "b": "-...",
    "c": "-.-.",
    "d": "-..",
    "e": ".",
    "f": "..-.",
    "g": "--.",
    "h": "....",
    "i": "..",
    "j": ".---",
    "k": "-.-",
    "l": ".-..",
    "m": "--",
    "n": "-.",
    "o": "---",
    "p": ".--.",
    "q": "--.-",
    "r": ".-.",
    "s": "...",
    "t": "-",
    "u": "..-",
    "v": "...-",
    "w": ".--",
    "x": "-..-",
    "y": "-.--",
    "z": "--..",
    ".": ".-.-.-",
    ",": "--..--",
    "?": "..--..",
    "!": "-.-.--",
    "-": "-....-",
    "/": "-..-.",
    "@": ".--.-.",
    "(": "-.--.",
    ")": "-.--.-"
}

# Список слов для кодирования
words_for_encoding = ["code", "bit", "list", "soul", "next", "little", "snake", "wellplayed"]

# Счетчик вопросов
quest_count = 1

# Список статистики
answers = []


def morse_encode(word):
    """
    Функция кодирования слова
    """
    encrypted_word = ""

    # Запускаем цикл по перебору букв в слове
    for i in word:
        # Заменяем букву в слове и добавляем пробел
        encrypted_word += morse_code[i] + " "

    return encrypted_word


def get_word():
    """
    Получаем случайное слово из списка
    """
    # Импорт библиотеки случайных чисел
    from random import choice

    random_word = choice(words_for_encoding)

    return random_word


def print_statistics(answers):
    """
    Функция вывода статистики
    """
    # Счетчик правильных ответов
    true_answers = 0

    # Счетчик неправильных ответов
    false_answers = 0

    # Запускаем цикл по перебору списка ответов
    for i in answers:

        if i == True:
            true_answers += 1

        else:
            false_answers += 1

    # Переменная stats собирает в себе информацию для вывода
    stats = "\nВсего задачек: " + str(len(answers)) + "\nОтвечено верно: " + str(
        true_answers) + "\nОтвечено неверно: " + str(false_answers)

    return stats


input("""Сегодня мы потренируемся расшифровывать морзянку.
Нажмите Enter и начнем""")

# Запускаем цикл с пятью вопросами
while quest_count <= 5:

    # Присваиваем случайное слово
    word = get_word()

    # Присваиваем зашифрованное слово
    encrypted_word = morse_encode(word)

    # Присваиваем введенное пользователем слово
    user_word = input(f"\nСлово {quest_count}: {encrypted_word}")

    # Если введенное слово соответсвует зашифрованному слову
    if user_word == word:
        print(f"Верно, {word}!")

        # Записывает в список статистики правильный ответ
        answers.append(True)

    # Если не соответствует
    else:
        print(f"Неверно, {word}!")

        # Записывает в список статистики правильный ответ
        answers.append(False)

    # Увеличиваем счетчик вопросов на единицу
    quest_count += 1

# Выводим статистику
print(print_statistics(answers))
